const mongoose = require("mongoose");
const moment = require("moment-timezone");
// 创建商品集合规则
const goodsSchema = new mongoose.Schema({
    // 商品名称
    goodsName: {
        type: String,
        required: [true, "商品名称不能为空"],
    },
    // 修改时间
    modify: {
        type: String,
        default: moment().tz("Asia/Shanghai").format("YYYY/MM/DD HH:mm:ss"),
    },
    // 商品成色
    level: {
        type: String,
        required: [true, "商品成色不能为空"],
    },
    // 商品详细信息
    remark: {
        type: String,
    },
    // 商品价格
    price: {
        type: Number,
        required: [true, "商品价格不能为空"],
    },
    // 商品分类
    sort: {
        type: String,
        required: [true, "商品分类不能为空"],
    },
    // 商品数量
    count: {
        type: Number,
        required: [true, "商品数量不能为空"],
    },
    // 商品是否被下架
    display: {
        type: Boolean,
        required: [true, "商品是否被下架不能为空"],
    },
    // 交易方式
    transaction: {
        type: String,
        required: [true, "交易方式不能为空"],
    },
    // 商品销量
    // sales: {
    //     type: Number,
    //     required: [true, "商品销量不能为空"],
    // },
    // 发表此商品的用户id
    uid: {
        type: mongoose.Schema.Types.ObjectId,
        ref: "user",
        required: [true, "发表此商品的用户id不能为空"],
    },
    // 商品的图片地址
    image: {
        type: String,
        required: [true, "商品图片地址不能为空"],
    },
});

// 创建商品信息集合,这一步会在数据库中创建一个文件夹，就是集合，集合里的一条条数据就是"文档"
const Goods = mongoose.model("Goods", goodsSchema);

// 插入商品信息数据,插入数据应在路由中有一个专门的模块,详情参考blog项目
// async function createGoods() {
//     //     const salt = await bcrypt.genSalt(10);
//     //     const pass = await bcrypt.hash("123456", salt);
//     const goods = await Goods.create({
//         goodsName: "大学物理",
//         price: 12.4,
//         level: 95,
//         sort: 1,
//         count: 1,
//         display: 0,
//         transaction: "支付宝",
//         sales: 1,
//         uid: { id: 1234 },
//         image: "phi",
//     });
// }
// createGoods();
// 将商品信息集合进行导出
module.exports = Goods; // 注意这里的写法，是用等号连接